/*
 * 02指针运算.c
 *
 *  Created on: 2024年3月9日
 *      Author: HP
 */
#include<stdlib.h>
#include<math.h>
#include<time.h>

void my_strcpy(char* dest, char* ch){
	int i = 0;
	while(ch[i] != '\0'){
		dest[i] = ch[i];
		i++;
	}
	dest[i] = 0;
}

void my_strcpy2(char* dest, char* ch){
	int i = 0;
	while(*(ch+i) != '\0'){
		*(dest+i) = *(ch+i);
		i++;
	}
	*(dest+i) = 0;
}

void my_strcpy3(char* dest, char* ch){
	while(*ch != '\0'){
		*dest = *ch;
		dest++; // 指针+1，相当于指向数组下一个元素，内存地址变化了sizeof(char)
		ch++;
	}
	*dest = 0;
}

void my_strcpy4(char* dest, char* ch){
	while(*dest++ = *ch++);
	// *ch
	// *dest
	// *dest = *ch
	// 判断ch != '\0'
	// ch++
	// dest++
}

int main0602(void){
	// 字符串拷贝
	char ch[] = "hello world";
	char dest[100];
	// my_strcpy(dest, ch);
	// my_strcpy2(dest, ch);
	// my_strcpy3(dest, ch);
	my_strcpy4(dest, ch);
	printf("%s\n", dest);
	return 0;
}
